<%-- 
    Document   : basket
    Created on : 17.02.2011, 14:42:11
    Author     : felix
    Description: angelehnt an jBasket von
                 http://www.webresourcesdepot.com/creating-a-slick-ajaxed-add-to-basket-with-jquery-and-php
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page session="true" %>

<%
// Aktion initialisieren
String action = null;

// Übung initialisieren
String exercise = null;

// Javascript-Test initialisieren
String noJavaScript = null;

// Gesamtdauer  initialisieren
Integer productTotalDuration = null;

// Dauer  initialisieren
String duration = null;

 // Testen ob eine "Action" übergeben wurde
if(request.getParameter("action") != null) {
    // "action"-Paramter in "action" speichern
    action = request.getParameter("action");
    // "exercise"-Parameter in "Exercise" speichern
    exercise = request.getParameter("exercise");

    // Falls "action"-Parameter null ist
    if(request.getParameter("action") == null)
	{
		noJavaScript = "" + 1;
	} else {
		noJavaScript = "" + 0;
	}
}

// Falls "action" dem String "addToBasket" entspricht
if (action.equals("addToBasket")){
    // Gesamtdauer zurücksetzen;
    productTotalDuration	= 0;

    // Details der Übung laden
    String[] row = db.exercises.getExerciseDetailsByExerciseId(exercise);

    // Dauer der Übung auslesen
    duration 		= row[8];

    // Übung mit Dauer und SessionID in die Datenbank schreiben
    db.baskets.createBasket(exercise, duration, session.getId());

    // Alle Einträge für den Trainingsplan anhand der Session laden
    String baskets[][] = db.baskets.getAllBasketsByExerciseIdAndSessionId(exercise, session.getId());

    // Gesamtzahl aller Einträge
    int totalItems = 0;

    // Für jedes Element des Plans ...
    for(String[] basket: baskets){
        // Gesamtzahl der Einträge inkrementieren
        totalItems++;

        // Gesamtdauer erhöhen
        productTotalDuration = Integer.parseInt(basket[2]);
    }

    // Wenn JavaScript deaktiviert ist ...
    if (noJavaScript.equals("1")) {
        // zur Seite createTrainingplan.jsp zurückleiten
        response.sendRedirect("createTrainingplan.jsp");
    } else {
        // Zeile für ein Element generieren
        out.print("<li id=\"productID_" + exercise + "\"><a href=\"basket?action=deleteFromBasket&exercise=" + exercise + "\" onClick=\"return false;\"><img src=\"pict/delete.png\" id=\"deleteProductID_" + exercise + "\"></a> " + db.exercises.getName(exercise) + " (" + productTotalDuration + " Min)</li>");

        // Gesamtdauer aller Elemente berechnen
        String totalDuration = db.baskets.getTotalDuration(session.getId());

        // Wenn keine Gesamtdauer berechnet werden konnte
        if(totalDuration == null){
            // setze Dauer auf 0
            totalDuration = "0";
        }

        // Zeile mit der Gesamtdauer generieren
        out.print("<li id=\"totalduration\">Gesamtdauer: " + totalDuration + " Minuten</li>");
    }
}

// Falls "action" dem String "deleteFromBasket" entspricht
if (action.equals("deleteFromBasket")){
        // Übunge aus Baskets anhand der ÜbungsID und SessionID löschen
        db.baskets.deleteBasket(exercise, session.getId());

        // Falls JavaScript deaktiviert ist
	if (noJavaScript.equals("1")) {
            // zur Seite createTrainingplan.jsp zurückleiten
            response.sendRedirect("createTrainingplan.jsp");
	}

        // Gesamtdauer aller Elemente auslesen
        String totalDuration = db.baskets.getTotalDuration(session.getId());

        // Wenn Gesamtdauer nicht gesetzt ist
        if(totalDuration == null){
            // Gesamtdauer auf 0 setzen
            totalDuration = "0";
        }

        //Zeile für Gesamtdauer generieren
        out.print("<li id=\"totalduration\">Gesamtdauer: " + totalDuration + " Minuten</li>");
}
%>
